User-Command

Dies ist Teil 9 von 11 der Serie Interaktive Liste

Ein besonderes Schmankerl dieses Reports ist eine kurze Begriffserklärung der verwendeten Ikonen. Diese werden in einem Popup angezeigt, um den Anwender über die Bedeutung zu informieren. Ausserdem bekommt die Liste ein “Aktualieren-Funktion”. Dies geschieht alles in dem Ereignis “AT USER-COMMAND”

Um auf die im PF-Status definierten Drucktasten reagieren zu können, benötigt der Report das Ereignis “AT USER-COMAMND”.

Hier wollen wir die Aktualisieren-Funktion sowie die Legende implementieren.

Ereignis AT USER-COMMAND

Das Ereignis kann irgendwo im Quelltext definiert werden. Natürlich gehört es zu den anderen Eregnissen “AT LINE-SELECTION”, “TOP-OF-PAGE” und “INITIALIZATION”.

Die Zuweisung “l_actual_line = sy-staro” ist nötig, um bei einem erneuten Aufbau der Liste diese wieder an der gleichen Stelle zu positionieren, wie vorher. Würden wir dies nicht tun, dann spränge SAP nach einem Neuaufbau wieder an den Listbeginn. Dies ist jedoch nicht sehr schön…!

AT USER-COMMAND.

  l_actual_line = sy-staro.

*– Funktionscode abfragen
  CASE sy-ucomm.
    WHEN ‘REFR’.
*– Das ist alles: erneute Selektion und Listausgabe
      PERFORM selektion.
      PERFORM listausgabe.
    WHEN ‘LEGENDE’.
      PERFORM legende.
  ENDCASE.

Legende

Die Legende soll den Anwender über die Bedeutung der einzelnen Icons informieren. Bauen Sie so eine Legende immer ein, wenn die Icons nicht zwingend sprechend sind! Und das ist meistens der Fall!

Die folgende Routine ist recht universell einsetzbar. Je nachdem wie umfangreich die Informationen mit der Zeit werden — Aus meiner Erfahrung kommt immer etwas dazu… — kann die Fenstergröße einfach angepasst werden.

Die Variable “l_popup_aktiv” muss gesetzt werden, damit dies im Ereignis TOP-OF-PAGE berücksichtigt werden kann und kein Listenkopf ausgegeben wird.

Der Standard-GUI-Status muss wieder mit “SET PF-STATUS space” aktiviert werden, damit im Fenster nicht der Aktualiseren-Button und der Legenden-Button auftauchen.

*———————————————————————*
*       FORM legende                                                  *
*———————————————————————*
FORM legende.

  DATA:
    l_popup_breite TYPE i VALUE 70,
    l_popup_hoehe  TYPE i VALUE 10,
    l_popup_x1     TYPE i VALUE 10,
    l_popup_x2     TYPE i,
    l_popup_y1     TYPE i VALUE 10,
    l_popup_y2     TYPE i.

  l_popup_x2 = l_popup_x1 + l_popup_breite.
  l_popup_y2 = l_popup_y1 + l_popup_hoehe.

  SET PF-STATUS space.
  SET TITLEBAR ‘LEGENDE’.
  l_popup_aktiv = ‘X’.

*– Fenster starten
  WINDOW STARTING AT l_popup_x1 l_popup_y1
           ENDING AT l_popup_x2 l_popup_y2.
  NEW-PAGE LINE-SIZE l_popup_breite LINE-COUNT 0.
  WRITE AT /1(l_popup_breite) sy-uline.
  WRITE: / ‘|’, ‘Legende’, AT l_popup_breite ‘|’.
  WRITE AT /1(l_popup_breite) sy-uline.
*– Bedeutung der Icons
  WRITE: AT /2 k_icon_green AS ICON, k_info_green,
         AT /2 k_icon_red   AS ICON, k_info_red.
  l_popup_aktiv = space.

ENDFORM.

Enno Wulff
Letzte Artikel von Enno Wulff (Alle anzeigen)
Series Navigation<< ListausgabeÜberschriften >>